//
//  LiveServer.m
//  CYWFrame
//
//  Created by Macx on 2017/8/14.
//  Copyright © 2017年 Macx. All rights reserved.
//

#import "LiveServer.h"
#import <AFNetworking.h>
#import <MBProgressHUD.h>
#import "UIView+LZCView.h"
#import "LoginViewController.h"
#import "BaseNavViewController.h"

@implementation LiveServer
//
//+ (NSString *)uploadImage:(UIImage *)img {
//    UIViewController *currVC = [[[UIView alloc] init] topViewControllerWithRootViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
//    
//    [MBProgressHUD showHUDAddedTo:currVC.view animated:YES];
//    
//    AFHTTPSessionManager *afn = [AFHTTPSessionManager manager];
//    
//    // 请求头
//    [afn.requestSerializer setValue:[GetUserDefaule(Token) valueForKey:@"access_token"]forHTTPHeaderField:@"Authorization"];
//            NSDictionary *dict = @{
//                               @"file[]":@[]
//                               };
//    
//    [afn POST:APIImages parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
//        // formData: 专门用于拼接需要上传的数据,在此位置生成一个要上传的数据体
//        // 这里的_photoArr是你存放图片的数组
//        NSData *imageData = UIImageJPEGRepresentation(img, 0.5);
//            
//        // 在网络开发中，上传文件时，是文件不允许被覆盖，文件重名
//        // 要解决此问题，
//        // 可以在上传时使用当前的系统事件作为文件名
//        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//        // 设置时间格式
//        [formatter setDateFormat:@"yyyyMMddHHmmss"];
//        NSString *dateString = [formatter stringFromDate:[NSDate date]];
//        NSString *fileName = [NSString  stringWithFormat:@"%@.jpg", dateString];
//        /*
//         *该方法的参数
//         1. appendPartWithFileData：要上传的照片[二进制流]
//         2. name：对应网站上[upload.php中]处理文件的字段（比如upload）
//         3. fileName：要保存在服务器上的文件名
//         4. mimeType：上传的文件的类型
//         */
//        [formData appendPartWithFileData:imageData name:@"pic[]" fileName:fileName mimeType:@"image/jpeg"]; //
//        
//    } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
//        id obj = [JWT decodeMessage:responseObject[@"token"]].secret(JWTSecret).algorithmName(@"HS256").decode;
//        //        return [obj valueForKey:@"payload"];
//        NSArray *imgArr = [[[obj valueForKey:@"payload"] valueForKey:@"data"] valueForKey:@"images"];
//        NSLog(@"上传图片 success = %@", imgArr);
////        return @"";
//        
//        dispatch_sync(dispatch_get_main_queue(), ^{
//            break;
//            return @"x";
//        });
//        
//        
//    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//        NSLog(@"上传图片 failure = %@", error);
//        [MBProgressHUD hideHUDForView:currVC.view animated:YES];
//        [currVC presentViewController:[self AFNErrorAlert:error] animated:YES completion:nil];
////        return nil;
//    }];
//
//    return nil;
//}


+ (UIAlertController *)AFNErrorAlert:(NSError *)error {
    
    NSString *message;
    
    if (error.code == -1009 || error.code == -1001) {
        message = @"请检查网络状况";
    }
    else {
        NSData *errorData = error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey];
        
        NSDictionary *serializedData = [NSJSONSerialization JSONObjectWithData: errorData options:kNilOptions error:nil];
        NSLog(@"error--%@", serializedData);
        message = serializedData[@"message"];
    }
    
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:message preferredStyle:UIAlertControllerStyleAlert];
    [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        
        
        if ([message isEqualToString:@"请先登录"]) {
            AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
            BaseNavViewController *loginVC = [[BaseNavViewController alloc] init];
            UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:loginVC];
            appDelegate.window.rootViewController = nav;
        }
        
    }]];
    
    return alert;
}


@end
